package com.fy.proj5_permission_transaction_cache.util;

import java.util.HashMap;
import java.util.Map;

public class ResponseUtil {
    
    // 成功状态码
    private static final int SUCCESS_CODE = 200;
    // 错误状态码
    private static final int ERROR_CODE = 500;
    // 未授权状态码
    private static final int UNAUTHORIZED_CODE = 401;
    // 禁止访问状态码
    private static final int FORBIDDEN_CODE = 403;
    // 资源不存在状态码
    private static final int NOT_FOUND_CODE = 404;
    
    /**
     * 成功响应
     * @param data 响应数据
     * @return Map<String, Object>
     */
    public static Map<String, Object> success(Object data) {
        Map<String, Object> result = new HashMap<>();
        result.put("code", SUCCESS_CODE);
        result.put("message", "success");
        result.put("data", data);
        return result;
    }
    
    /**
     * 成功响应（无数据）
     * @return Map<String, Object>
     */
    public static Map<String, Object> success() {
        Map<String, Object> result = new HashMap<>();
        result.put("code", SUCCESS_CODE);
        result.put("message", "success");
        return result;
    }
    
    /**
     * 错误响应
     * @param message 错误信息
     * @return Map<String, Object>
     */
    public static Map<String, Object> error(String message) {
        Map<String, Object> result = new HashMap<>();
        result.put("code", ERROR_CODE);
        result.put("message", message);
        return result;
    }
    
    /**
     * 错误响应（带状态码）
     * @param code 状态码
     * @param message 错误信息
     * @return Map<String, Object>
     */
    public static Map<String, Object> error(int code, String message) {
        Map<String, Object> result = new HashMap<>();
        result.put("code", code);
        result.put("message", message);
        return result;
    }
    
    /**
     * 未授权响应
     * @param message 错误信息
     * @return Map<String, Object>
     */
    public static Map<String, Object> unauthorized(String message) {
        return error(UNAUTHORIZED_CODE, message);
    }
    
    /**
     * 禁止访问响应
     * @param message 错误信息
     * @return Map<String, Object>
     */
    public static Map<String, Object> forbidden(String message) {
        return error(FORBIDDEN_CODE, message);
    }
    
    /**
     * 资源不存在响应
     * @param message 错误信息
     * @return Map<String, Object>
     */
    public static Map<String, Object> notFound(String message) {
        return error(NOT_FOUND_CODE, message);
    }
}